
package es.mimuu.generator.util;





/**
 * Utility class for creating Objects from properies (Strings).
 *
 * @author Patrik Nordwall
 */
public class FactoryHelper {


    private FactoryHelper() {
    }

    /**
     * Creates an instance from a String class name.
     *
     * @param className
     *            full class name
     * @param classLoader
     *            the class will be loaded with this ClassLoader
     * @return new instance of the class
     * @throws RuntimeException
     *             if class not found or could not be instantiated
     */
    public static Object newInstanceFromName(String className) {
        return newInstanceFromName(className, FactoryHelper.class.getClassLoader());
    }

    /**
     * Creates an instance from a String class name.
     *
     * @param className
     *            full class name
     * @param classLoader
     *            the class will be loaded with this ClassLoader
     * @return new instance of the class
     * @throws RuntimeException
     *             if class not found or could not be instantiated
     */
    public static Object newInstanceFromName(String className, ClassLoader classLoader) {
        try {
            Class<?> clazz = Class.forName(className, true, classLoader);
            return clazz.newInstance();
        } catch (Exception e) {
            String m = "Couldn't create instance from name " + className + " (" + e.getMessage() + ")";
            throw new RuntimeException(m);
        }
    }
}
